// Copyright (C) <2022> Zealcomm Inc.

#ifndef IRTC_CONFERENCE_OBJC_IRTCCONFERENCEWHITEBOARD_H_
#define IRTC_CONFERENCE_OBJC_IRTCCONFERENCEWHITEBOARD_H_
#import <Foundation/Foundation.h>
#import <IRTC/IRTCMacros.h>
NS_ASSUME_NONNULL_BEGIN
@protocol IRTCConferenceWhiteboardDelegate;

/// This class represents a whiteboard’s snapshot
/// info.<br>这个类代表了一个白板的快照信息。
IRTC_OBJC_EXPORT
@interface IRTCSnapshotInfo : NSObject
- (instancetype)init NS_UNAVAILABLE;
/// Meta data of snapshot.<br>快照的信息。
@property(readonly, strong) NSString* metaData;
/// Base64 code of whiteboard's front png data.<br>白板画板png的base64编码。
@property(readonly, strong) NSString* front;
/// Base64 code of whiteboard's background png
/// data.<br>白板底板png的base64编码。
@property(readonly, strong) NSString* background;

@end

/// This class represents a whiteboard in a
/// conference.<br>这个类代表了会议的一个白板。
IRTC_OBJC_EXPORT
@interface IRTCConferenceWhiteboard : NSObject
- (instancetype)init NS_UNAVAILABLE;
/// The ID of the whiteboard.<br>白板的ID。
@property(readonly, strong) NSString* whiteboardId;
/// The owner ID of the whiteboard.<br>白板的创建者用户ID。
@property(readonly, strong) NSString* owner;
/// Name of the whiteboard.<br>白板的名字。
@property(readonly, strong) NSString* name;
/// Uri of the whiteboard.<br>白板的路径。
@property(readonly, strong) NSString* uri;

/**
  @brief Returns a user-defined attribute
  dictionary.<br>返回用户定义的属性字典。
  @details These attributes are defined by creater.<br>这些属性是创建者定义的。
*/
- (NSDictionary<NSString*, NSString*>*)attributes;

@property(nonatomic, weak) id<IRTCConferenceWhiteboardDelegate> delegate;
@end

IRTC_OBJC_EXPORT
@protocol IRTCConferenceWhiteboardDelegate <NSObject>
@optional
/// Whiteboard remove in conference.
- (void)whiteboardDidRemove:(IRTCConferenceWhiteboard*)whiteboard;
@end
NS_ASSUME_NONNULL_END
#endif  // IRTC_CONFERENCE_OBJC_IRTCCONFERENCEWHITEBOARD_H_
